In many computing, networking, and other technology applications, two hardware devices have to communicate with one another. Such communication occurs over a variety of different communication links. Although communication links are usually designed to value error-free communication as well as communication performance, no communication link may be considered perfect, and errors in data transmitted from a transmitting device to a receiving device over a communication link can occur, even if infrequently.